package com.training.admin.service;

import java.util.List;

import com.training.admin.entity.course.Course;
import com.training.admin.entity.project.Project;
import com.training.admin.entity.project.ProjectPhase;
import com.training.admin.entity.project.ProjectPhaseCourse;

/**
 * 
 * @author Rockett
 *
 */
public interface ProjectPhaseCourseService extends DataService<ProjectPhaseCourse> {
    

	/**
	 * listByProjectPhaseId
	 * @param projectPhaseId
	 * @return
	 */
	public List<ProjectPhaseCourse> listByProjectPhaseId(Long projectPhaseId);
	/**
	 * listByProjectPhaseAndCourseId
	 * @param projectPhaseId
	 * @param courseId
	 * @return
	 */
	public List<ProjectPhaseCourse> listByProjectPhaseAndCourseId(Long projectPhaseId,Long courseId);
	
	/**
	 * 项目课程数、课时统计
	 * @param projectId
	 * @return
	 */
	public Object[] statisticsByProjectId(Long projectId);
	
    /**
     * @param projectPhaseCourseId
     */
    public void deleteProjectPhaseCourse(Long projectPhaseCourseId);
    
    /**
     * @param project
     */
    public void updateProjectStatus(Project project);
    
    /**
     * @param trainerId
     * @param projectPhaseId
     * @param course
     */
    public void createProjectPaseCourse(Long trainerId, String trainerName, String supplier, String trainerdesc, Long projectPhaseId, Course course);
    
    /**
     * 查询绑定课程
     * @param projectPhaseId
     * @param selectCourseIds
     */
    public void bindCourse(Long projectPhaseId, List<Long> selectCourseIds);
    
    /**
     * @param projectPhase
     * @return
     */
    public List<ProjectPhaseCourse> listByProjectPhase(ProjectPhase projectPhase);
   
    /**
     * @param projectPhaseCourseId
     * @param trainerId
     */
    public void bindTrainer(Long projectPhaseCourseId, Long trainerId);
    
    /**
     * @param projectPhaseCourseId
     * @param trainerId
     * @param course
     */
    public void editCourse(Long projectPhaseCourseId, Long trainerId, Course course);
	
	/**
	 * 讲师统计维度
	 * @param trainerId
	 * @return
	 */
	public List<ProjectPhaseCourse> listByTrainer(Long trainerId);


}
